package com.jxtc.enterprise.tenant.vo.deliveryLocker.req;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;

@Getter
@Setter
@ToString
public class DeliveryLockerUpdateReqVo {
    /**
     * 外卖柜 ID
     */
    @NotEmpty(message = "外卖柜 ID 不能为空")
    private String deliveryLockerId;
    /**
     * 外卖柜名称，推荐使用外卖柜放置地点为名称，名称不能重复
     */
    @Size(max = 64, message = "外卖柜名称不能超过 64 个字")
    private String deliveryLockerName;
    /**
     * 每个外卖柜的简称（货柜编码），贴在对应的外卖柜上用于区分货柜
     */
    @Size(max = 16, message = "货柜编号不能超过 16 个字")
    private String deliveryLockerShortName;
    /**
     * 外卖柜售货机编号
     */
    @Size(max = 64, message = "货柜控制器编号不能超过 64 个字")
    private String clientNo;
    /**
     * 货柜管理系统登录账号
     */
    @Size(max = 64, message = "货柜管理系统登录账号不能超过 64 个字")
    private String appId;
    /**
     * 货柜管理系统登录密码
     */
    @Size(max = 64, message = "货柜管理系统登录密码不能超过 64 个字")
    private String appKey;
    /**
     * 货柜号
     */
    @Min(value = 1, message = "货柜号不能小于 1")
    private Integer cab;
    /**
     * 货道起始编号
     */
    @Min(value = 1, message = "货道起始编号不能小于 1")
    private Integer colStart;
    /**
     * 货道结束编号
     */
    @Min(value = 1, message = "货道结束编号不能小于 1")
    private Integer colEnd;
    /**
     * 外卖柜贴标
     */
    @Size(max = 16, message = "外卖柜贴标不能超过 16 个字")
    private String lockerLabel;
    /**
     * 批量开柜门时，调用开柜门接口的等待间隔时间，单位：毫秒
     */
    @Min(value = 0, message = "等待间隔时间不能小于 0")
    private Integer waitIntervalInMs;
}
